#define _CRT_SECURE_NO_WARNINGS 1
class Solution {
public:
	int combinationSum4(vector<int>& nums, int target) {
		vector<int> dp(target + 1, 0);
		dp[0] = 1;
		for (int i = 0; i <= target; i++)
		{
			for (int j = 0; j < nums.size(); j++)
			{
				if (i >= nums[j] && dp[i] < INT_MAX - dp[i - nums[j]])
					dp[i] += dp[i - nums[j]];

				printf("dp[%d] = %d ", i, dp[i]);
			}
			printf("\n");
		}
		return dp[target];
	}
};